package pl.mmadej.ds4java.ds.list;


import java.util.Comparator;

public interface List<T> extends Iterable<T> {

    int size();

    boolean contains(T element);

    int indexOf(T element);

    void insert(T element);

    void insertAt(int index, T element);

    T searchAt(int index);

    T deleteAt(int index);

    boolean delete(T element);

    T deleteLast();

    T deleteFirst();

    T searchLast();

    T searchFirst();

    List<T> toUnmodifiable();

    <E> E[] toArray(E[] e);

    void sort(Comparator<T> comparator);

    void clear();

    void reverse();

    boolean empty();
}
